/*
 *  RingerFS.h
 *  MetaThrift
 *
 *  Created by Ian Pye on 3/16/08.
 *  Copyright 2008 TriceratopsPowered. All rights reserved.
 *
 */

#ifndef __RINGER_FS_H__
#define __RINGER_FS_H__ 

#include <fuse.h>
#include <transport/TSocket.h>
#include <transport/TServerSocket.h>

// Logger headers
#include <log4cxx/logger.h>
#include <log4cxx/basicconfigurator.h>
#include <log4cxx/helpers/exception.h>
#include <log4cxx/propertyconfigurator.h>

namespace ringer {
    
  static const bool USE_EXT_SIMHASH = false;  
  static const std::string RINGER_DEFAULT_MDS_HOST = "localhost";
  static const std::string RINGER_DEFAULT_SELF_HOST = "localhost";
  static const bool RINGER_DEBUG = true;
  static const char* RINGER_NAME = "Ringer";
  static const std::string RINGER_LOG = "/tmp/r_log"; 
  static const std::string RINGER_L_CACHE = "/tmp/ringer_l_cache";
  static const std::string RINGER_LOGGING_CONFIG = "logging_config";
  static const std::string RINGER_CLIENT_VERSION_STRING = "Ringer Client, Version 0.1. \nCreated by Ian Pye -- ipye@cs.ucsc.edu. \nCopyright 2008 TriceratopsPowered. All rights reserved. \nResearch software -- Use at your own risk!";

  
  static log4cxx::LoggerPtr g_logger(log4cxx::Logger::getLogger(RINGER_NAME));    
  static host_t g_ringer_client_id ;  // unique identifier for this host    
  //static rpath_t ringer_client_path_prefix = g_ringer_client_id.host_name + RINGER_HOST_ROOT_SEP;
  static std::map< std::pair<std::string, int>, int> g_open_files;
  
  class RingerNetworkArgs{
    public:
      int mds_port;
      int self_port;
      std::string mds_host;
      std::string self_host;
      std::string local_cache_dir;
      std::string simhash_tags_file;
      std::string trust_file;
      std::string public_key;
      std::string private_key;
      std::string logging_conifg;
      std::string db_env;
  }; // end RingerNetworkArgs  
}

#endif // __RINGER_FS_H__
